#!/bin/bash

# start_backend.sh - 启动用户端和管理端 Spring Boot 后端服务

# 获取脚本所在目录
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
CODE_DIR="$SCRIPT_DIR/../code"

echo "=================================="
echo "✅ 启动后端服务"
echo "项目根目录: $SCRIPT_DIR"
echo "代码目录: $CODE_DIR"
echo "日志目录: $SCRIPT_DIR/backend_logs"
echo "=================================="

# 函数：检查目录是否存在
check_dir() {
    if [ ! -d "$1" ]; then
        echo "❌ 错误：目录不存在 -> $1"
        exit 1
    fi
}

# 确保日志目录存在
mkdir -p "$SCRIPT_DIR/backend_logs"

# 启动用户端 Spring Boot 后端 (后台运行)
start_user_backend() {
    local dir="$CODE_DIR/User_SpringBoot"
    check_dir "$dir"
    echo "🚀 启动用户端后端..."
    cd "$dir" || exit 1
    mvn spring-boot:run > "$SCRIPT_DIR/backend_logs/user-backend.log" 2>&1 &
    USER_BACKEND_PID=$!
    echo "用户端后端 PID: $USER_BACKEND_PID"
    sleep 3
}

# 启动管理端 Spring Boot 后端
start_admin_backend() {
    local dir="$CODE_DIR/Admin_SpringBoot"
    check_dir "$dir"
    echo "🚀 启动管理端后端..."
    cd "$dir" || exit 1
    mvn spring-boot:run > "$SCRIPT_DIR/backend_logs/admin-backend.log" 2>&1 &
    ADMIN_BACKEND_PID=$!
    echo "管理端后端 PID: $ADMIN_BACKEND_PID"
    sleep 3
}

# ========== 开始启动后端 ==========
echo "📦 正在启动后端服务..."

start_user_backend
start_admin_backend

# 输出访问信息
echo ""
echo "✅ 后端服务已启动！🎉"
echo "🔌 用户端 API: http://localhost/api → 转发到 :8080"
echo "🔌 管理端 API: http://localhost:10000/api → 转发到 :10010"
echo ""
echo "📌 日志文件保存在: $SCRIPT_DIR/backend_logs/"
echo ""
echo "💡 查看日志命令："
echo "   tail -f backend_logs/user-backend.log"
echo "   tail -f backend_logs/admin-backend.log"
echo ""
echo "⛔ 停止服务：kill $USER_BACKEND_PID $ADMIN_BACKEND_PID 或 pkill -f java"
